home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume20 / epf / part03 < prev    next >
Encoding:
Internet Message Format  |  1989-10-24  |  46.8 KB

  1. Subject:  v20i063:  LQ-1500 drivers for nroff, Part03/06
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: "John Rupley" <rupley@arizona.edu>
  7. Posting-number: Volume 20, Issue 63
  8. Archive-name: epf/part03
  9.  
  10. #! /bin/sh
  11. # This is a shell archive.  Remove anything before this line, then unpack
  12. # it by saving it into a file and typing "sh file".  To overwrite existing
  13. # files, type "sh file -c".  You can also feed this as standard input via
  14. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  15. # will see the following message at the end:
  16. #        "End of archive 3 (of 6)."
  17. # Contents:  ./nobs.c ./specialeqn1 ./specialeqn2 ./specialerr
  18. #   ./specialgrk ./specialtbl ./tabepson.c ./tabepson12.c ./table.c
  19. #   ./table.h ./Matrix/Delta ./Matrix/Gamma ./Matrix/Lambda
  20. #   ./Matrix/Makefile ./Matrix/NOTE ./Matrix/Omega ./Matrix/Phi
  21. #   ./Matrix/Pi ./Matrix/Psi ./Matrix/README ./Matrix/Sigma
  22. #   ./Matrix/Theta ./Matrix/mat.c
  23. # Wrapped by local@rupley on Mon Jul 10 23:08:54 1989
  24. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  25. if test -f './nobs.c' -a "${1}" != "-c" ; then 
  26.   echo shar: Will not clobber existing file \"'./nobs.c'\"
  27. else
  28. echo shar: Extracting \"'./nobs.c'\" \(6097 characters\)
  29. sed "s/^X//" >'./nobs.c' <<'END_OF_FILE'
  30. X/* nobs.c - Simple backspace filter - 3.0 */
  31. X
  32. X/*
  33. X * This program will take lines containing overstrike pragmas of the form
  34. X * <char><bs><char> and convert them to individual lines of output with a
  35. X * return but no line feed between them. It is designed for filtering nroff
  36. X * output to line printers that cannot back space (or on which back spaces
  37. X * are expensive). 
  38. X *
  39. X * Only the following control characters are expected: \b, \t, \n, \r, \f, ESC,
  40. X * SO, and SI. \t is expanded. \b is processed (obviously). SO and SI delimit
  41. X * an alternate character set. A single printer control character must follow
  42. X * ESC; it is assumed that in the nroff output this character was a 7, 8, or
  43. X * 9, for forward or reverse carriage motion, and that "col" processing has
  44. X * made each ESC passed part of a line terminator sequence (\n-ESC-9 or
  45. X * ESC-9-\r). Other ESC sequences are very likely to corrupt the output.
  46. X * Other control characters may be passed, but with undefined results if
  47. X * there is overstriking. 
  48. X *
  49. X * Output from "col -f" is processed properly.  Indeed, if there are reverse or
  50. X * half-line forward carriage motions (ESC-[789]), then the raw nroff output
  51. X * _must_ be filtered through "col" before "nobs". As noted, "Nobs" assumes
  52. X * that escape sequences terminate a line, as in the output from "col". 
  53. X *
  54. X * "Nobs", like "col", passes strings in an alternate character set, delimited
  55. X * by SO (\016) and SI (\017). Characters of the alternate set are translated
  56. X * subsequently by a printer-specific filter into printer control strings and
  57. X * serve, e.g., to generate Greek characters and math symbols. "Nobs"
  58. X * understands that characters of the alternate set have unit width for char
  59. X * < 'r' and zero width for char >= 'r' (there is a non-portable assumption
  60. X * of ascii order). 
  61. X *
  62. X * Usage: cat file|pic|tbl|neqn|nroff -m? -TX|col -fx|nobs|X-filter >/dev/lp 
  63. X */
  64. X
  65. X/*-
  66. X * Author:
  67. X *   Chad R. Larson            This program is placed in the
  68. X *   DCF, Inc.                Public Domain.  You may do with
  69. X *   14623 North 49th Place        it as you please.
  70. X *   Scottsdale, AZ 85254
  71. X *
  72. X * Modified 3/3/89:
  73. X *   Kevin O'Gorman            Changes also in the public domain.
  74. X *   Vital Computer Systems
  75. X *   5115 Beachcomber
  76. X *   Oxnard, CA  93035
  77. X *
  78. X * Rewritten 6/27/89:
  79. X *   J.A. Rupley            rupley!local@megaron.arizona.edu
  80. X */
  81. X
  82. X#include <stdio.h>
  83. X
  84. X#define    LINESIZE    1024    /* maximum line length */
  85. X#define MAXOVER        8    /* maximum number of overstrikes */
  86. X#define TABSIZE        8    /* tab length */
  87. X#define ALT        0200    /* set MSB for alternate character set */
  88. X#define SO        '\016'    /* input flag for start of alternate char set */
  89. X#define SI        '\017'    /* input flag for end of above */
  90. X
  91. X/* forward references */
  92. void            exit();
  93. char           *memset();
  94. X
  95. static char     output[MAXOVER][LINESIZE + 3];    /* output line buffers with
  96. X                         * room for end of line
  97. X                         * delimters */
  98. X
  99. int
  100. main()
  101. X{
  102. X    int             out_dex;/* offset into output buffer */
  103. X    int             max_dex;/* high water for above */
  104. X    int             line;    /* output buffer array index */
  105. X    int             line_count;    /* number of output lines */
  106. X    int             strip;    /* trailing space strip index */
  107. X    int             alt;    /* flag for alternate character set on input */
  108. X    int             chr;    /* single character storage */
  109. X    char            c;    /* temp storage */
  110. X    char           *s;    /* pointer into an output buffer */
  111. X
  112. X    /*
  113. X     * file is processed by parts, delimited by \n, \r, \f or \033
  114. X     * strings; splitting at \033 and \r handles \b in lines with printer
  115. X     * control characters, specifically fwrd-half-line in output of 
  116. X     * the "col -f" filter. 
  117. X     */
  118. X    do {
  119. X        memset((char *) output, ' ', sizeof(output));
  120. X        out_dex = -1;
  121. X        max_dex = 0;
  122. X        line = 0;
  123. X        line_count = 0;
  124. X
  125. X        /* slide through input line, dropping bs chars */
  126. X        while ((chr = getchar())
  127. X               && chr != EOF
  128. X               && chr != '\033'
  129. X               && chr != '\f'
  130. X               && chr != '\n'
  131. X               && chr != '\r') {
  132. X            switch (chr) {
  133. X            case '\b':
  134. X                /* cannot backup thru half or full newline */
  135. X                out_dex = (out_dex >= 0) ? --out_dex : -1;
  136. X                break;
  137. X            case '\t':
  138. X                out_dex = ((out_dex + TABSIZE + 1) /
  139. X                       TABSIZE) * TABSIZE - 1;
  140. X                break;
  141. X            case SO:
  142. X                alt = ALT;
  143. X                break;
  144. X            case SI:
  145. X                alt = 0;
  146. X                break;
  147. X            case ' ':
  148. X                max_dex = (++out_dex > max_dex) ? out_dex : max_dex;
  149. X                break;
  150. X            default:
  151. X                if ((max_dex = (++out_dex > max_dex) ? out_dex : max_dex) > LINESIZE) {
  152. X                    fprintf(stderr, "nobs: line segment overflows buffer\n");
  153. X                    exit(1);
  154. X                }
  155. X                for (line = 0; /* exit at break */ ; line++) {
  156. X                    if (line == MAXOVER) {
  157. X                        fprintf(stderr, "nobs: too many overstrikes\n");
  158. X                        exit(1);
  159. X                    }
  160. X                    if (output[line][out_dex] == ' ') {
  161. X                        /* flag alt char */
  162. X                        output[line][out_dex] = chr | alt;
  163. X                        if (line_count < line)
  164. X                            line_count = line;
  165. X                        /* for zero-width alt char */
  166. X                        if (alt && chr >= 'r')
  167. X                            out_dex = (out_dex >= 0) ? --out_dex : -1;
  168. X                        break;    /* exit loop */
  169. X                    }
  170. X                }
  171. X            }
  172. X        }        /* end (\n, \E, etc)-delimited processing */
  173. X
  174. X        /* print the output buffers */
  175. X        for (line = 0; line <= line_count; line++) {
  176. X            strip = max_dex;
  177. X            while (output[line][strip] == ' ' && strip >= 0)
  178. X                --strip;    /* strip trailing spaces */
  179. X            ++strip;/* point past string end */
  180. X            /*
  181. X             * append line terminator (\r for line to be
  182. X             * overwritten); only [789] for +-movt should follow
  183. X             * ESC, and col preprocessing is assumed to have made
  184. X             * each ESC part of a line terminator. 
  185. X             */
  186. X            if (line < line_count) {
  187. X                output[line][strip++] = '\r';
  188. X            } else {
  189. X                if (chr == '\033') {
  190. X                    output[line][strip++] = chr;
  191. X                    chr = getchar();
  192. X                }
  193. X                output[line][strip++] = (chr == EOF) ? '\r' : chr;
  194. X            }
  195. X            output[line][strip] = '\0';
  196. X            for (s = output[line]; *s; s++) {
  197. X                c = *s & ~ALT;    /* careful about sign
  198. X                         * extension */
  199. X                if (*s & ALT && c > ' ') {
  200. X                    putchar(SO);    /* output printable
  201. X                             * alt char with SO-SI 
  202. X                             * delimiters */
  203. X                    putchar(c);
  204. X                    putchar(SI);
  205. X                } else {
  206. X                    putchar(c);
  207. X                }
  208. X            }
  209. X        }
  210. X
  211. X    } while (chr != EOF);    /* end of file */
  212. X    return (0);
  213. X}                /* end of main */
  214. END_OF_FILE
  215. if test 6097 -ne `wc -c <'./nobs.c'`; then
  216.     echo shar: \"'./nobs.c'\" unpacked with wrong size!
  217. fi
  218. # end of './nobs.c'
  219. fi
  220. if test -f './specialeqn1' -a "${1}" != "-c" ; then 
  221.   echo shar: Will not clobber existing file \"'./specialeqn1'\"
  222. else
  223. echo shar: Extracting \"'./specialeqn1'\" \(851 characters\)
  224. sed "s/^X//" >'./specialeqn1' <<'END_OF_FILE'
  225. X\" By Tom Tkacik    ...decvax!mcnc!ncsu!uvacs!uvaee!tet
  226. X.ne 50
  227. X.nf
  228. X.sp 10
  229. X.in 1i
  230. X.ft B
  231. A Big Equation - \fIFrom the EQN User's Guide\fP
  232. X.ft R
  233. X.sp
  234. X.EQ
  235. G(z)~mark =~ e sup { ln ~ G(z) }
  236. X~=~ exp left [
  237. sum from k>=1 {S sub k z sup k} over k right ]
  238. X~=~ prod from k>=1 e sup { S sub k z sup k /k}
  239. X.EN
  240. X.sp 2
  241. X.EQ
  242. lineup =~ left ( 1 + S sub 1 z +
  243. X{ S sub 1 sup 2 z sup 2 } over 2! + "..." right )
  244. left ( 1 + {S sub 2 z sup 2 } over 2
  245. X+ { S sub 2 sup 2 z sup 4 } over { 2 sup 2 ~ 2! }
  246. X+ "..." right ) "..."
  247. X.EN
  248. X.sp 
  249. X.EQ
  250. lineup =~ sum from m>=0 left {
  251. sum from
  252. pile { k sub 1 ,k sub 2 ",...," k sub m >=0
  253. above
  254. k sub 1 +2k sub 2 ",...," +mk sub m = m }
  255. X{S sub 1 sup {k sub 1} } over {1 sup k sub 1 k sub 1 ! } ~
  256. X{S sub 2 sup {k sub 2} } over {2 sup k sub 2 k sub 2 ! } ~
  257. X"..."
  258. X{S sub m sup {k sub m} } over {m sup k sub m k sub m ! } ~
  259. right } z sup m
  260. X.EN
  261. X.in -1i
  262. END_OF_FILE
  263. if test 851 -ne `wc -c <'./specialeqn1'`; then
  264.     echo shar: \"'./specialeqn1'\" unpacked with wrong size!
  265. fi
  266. # end of './specialeqn1'
  267. fi
  268. if test -f './specialeqn2' -a "${1}" != "-c" ; then 
  269.   echo shar: Will not clobber existing file \"'./specialeqn2'\"
  270. else
  271. echo shar: Extracting \"'./specialeqn2'\" \(1518 characters\)
  272. sed "s/^X//" >'./specialeqn2' <<'END_OF_FILE'
  273. X.ne 50
  274. X.nf
  275. X.sp 3
  276. X.ta 2.5i 5i
  277. X\fBTests of Neqn\fP
  278. X.sp 3
  279. X.EQ
  280. X"brackets:" ~~~ left [ a +  b right ]    "curlys:" ~~~ left { a +  b right }    "parens:" ~~~ left ( a +  b right )
  281. X.EN
  282. X.ta 4i
  283. X.sp 3
  284. X.EQ
  285. X"floors:" ~~~ left floor x right floor ~~~ left floor x over y right floor    "ceilings:" ~~~ left ceiling x right ceiling ~~~ left ceiling x over y right ceiling
  286. X.EN
  287. X.ta 2i 4i 6i
  288. X.sp 3
  289. diacriticals:
  290. X.sp
  291. X.EQ
  292. X"x dot:" ~ x dot     "x dotdot:" ~ x dotdot     "x hat:" ~ x hat     "x tilde:" ~ x tilde 
  293. X.EN
  294. X.sp
  295. X.EQ
  296. X"x vec:" ~ x vec     "x dyad:" ~ x dyad     "x bar:" ~ x bar     "x under:" ~ x under
  297. X.EN
  298. X.sp 3
  299. diacriticals (with fudging for better (?) representations):
  300. X.sp
  301. X.EQ
  302. X"x dot:" ~ x"\h'-1'\u.\d"     "x dotdot:" ~ x"\h'-1'\""     "x hat:" ~ x hat     "x tilde:" ~ x tilde 
  303. X.EN
  304. X.sp
  305. X.EQ
  306. X"x vec:" ~ x"\h'-1'\u\(->\d"    "x dyad:" ~ x"\h'-1'\u\(->\h'-1'\(<-\d"    "x bar:" ~ x bar    "x under:" ~ x under
  307. X.EN
  308. X.sp 3
  309. X.ta .5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i 
  310. symbols:
  311. X.sp
  312. X.EQ
  313. X>=    <=    ==    !=    +-    ->    <-    <<    >>    inf    partial    half    prime
  314. X.EN
  315. X.sp
  316. X.EQ
  317. approx    cdot    times    del    grad    ...    ,...,~~    sum    int    prod    union    inter
  318. X.EN
  319. X.sp 3
  320. eqnchar symbols (from /usr/pub/eqnchar modified for Epson LQ 1500)
  321. X.sp 2
  322. X.PS <./epseqnchar
  323. X.EQ
  324. ciplus    citimes    =wig    bigstar    =dot    orsign    andsign    =del    oppA    oppE    incl    nomem
  325. X.EN
  326. X.sp
  327. X.EQ
  328. angstrom    star    ||    <wig    >wig    langle    rangle    hbar    ppd    <->    <=>    |<    |>
  329. X.EN
  330. X.sp
  331. X.EQ
  332. ang    rang    3dot    thf    quarter    3quarter    degree    square    circle    blot    bullet    -wig    wig
  333. X.EN
  334. X.sp
  335. X.EQ
  336. prop    empty    member    scrL    ==>    ==<    cap    cup    subset    supset    !subset    !supset
  337. X.EN
  338. END_OF_FILE
  339. if test 1518 -ne `wc -c <'./specialeqn2'`; then
  340.     echo shar: \"'./specialeqn2'\" unpacked with wrong size!
  341. fi
  342. # end of './specialeqn2'
  343. fi
  344. if test -f './specialerr' -a "${1}" != "-c" ; then 
  345.   echo shar: Will not clobber existing file \"'./specialerr'\"
  346. else
  347. echo shar: Extracting \"'./specialerr'\" \(582 characters\)
  348. sed "s/^X//" >'./specialerr' <<'END_OF_FILE'
  349. X.ne 50
  350. X.fi
  351. X.na
  352. X.in +1i
  353. X.sp 10
  354. X\fBSome Problems and Fixes\fP
  355. X.sp2
  356. X1. The three symbols (SO-<char>-SI) of a special character representation
  357. are treated equally in overstriking by nroff, giving:
  358. X.sp
  359. SO<bksp>SO<bksp>SO<bksp>SO<char><bksp><char><bksp>.......
  360. X.sp
  361. col throws away the SO or SI, but processes the <bksp>'s.
  362. X.sp
  363. fix: filter the raw nroff output before sending it through col,
  364. as done in the test targets of the makefile.
  365. X.sp3
  366. X\fB1234567890\fP
  367. X.sp
  368. X1234567890\fB\(*a\fP
  369. X.sp
  370. X1234567890\fB\(*a\(*b\fP
  371. X.sp
  372. X1234567890\fB\(*a\(*b\(*c\fP
  373. X.sp 2
  374. X1234567890\fI\(*a\(*b\(*c\fP
  375. X.in -1i
  376. END_OF_FILE
  377. if test 582 -ne `wc -c <'./specialerr'`; then
  378.     echo shar: \"'./specialerr'\" unpacked with wrong size!
  379. fi
  380. # end of './specialerr'
  381. fi
  382. if test -f './specialgrk' -a "${1}" != "-c" ; then 
  383.   echo shar: Will not clobber existing file \"'./specialgrk'\"
  384. else
  385. echo shar: Extracting \"'./specialgrk'\" \(2108 characters\)
  386. sed "s/^X//" >'./specialgrk' <<'END_OF_FILE'
  387. X\" By Tom Tkacik    ...decvax!mcnc!ncsu!uvacs!uvaee!tet
  388. X.ne 50
  389. X.sp 2
  390. X\fBTest of the Special Character Set\fP
  391. X.sp
  392. X.nf
  393. X.ta 2i 4i 6i
  394. ALPHA \(*A    alpha \(*a    BETA \(*B     beta \(*b
  395. GAMMA \(*G    gamma \(*g    DELTA \(*D     delta \(*d
  396. XEPSILON \(*E     epsilon \(*e    ZETA \(*Z     zeta \(*z
  397. XETA \(*Y     eta \(*y    THETA \(*H     theta \(*h
  398. IOTA \(*I     iota \(*i    KAPPA \(*K     kappa \(*k
  399. LAMBDA \(*L     lambda \(*l    MU \(*M     mu \(*m
  400. NU \(*N     nu \(*n    XI \(*C     xi \(*c
  401. OMICRON \(*O     omicron \(*o    PI \(*P     pi \(*p
  402. RHO \(*R     rho \(*r    SIGMA \(*S     sigma \(*s
  403. TAU \(*T     tau \(*t    UPSILON \(*U     upsilon \(*u
  404. PHI \(*F     phi \(*f    CHI \(*X     chi \(*x
  405. PSI \(*Q     psi \(*q    OMEGA \(*W     omega \(*w
  406. X1/4  \(14    1/2  \(12    3/4  \(34    degree \(de
  407. dagger \(dg    double dagger \(dd    footmark \(fm    cent sign \(ct
  408. registered \(rg    copyright \(co    math +  \(pl    math -  \(mi
  409. math =  \(eq    math *  \(**    section  \(sc    underrule \(ul
  410. acute accent \(aa    grave accent \(ga    backslash \(sl    square root \(sr
  411. root en extender \(rn    plus minus \(+-    >= \(>=    <= \(<=
  412. identically = \(==    approx. = \(~=    approximates \(ap    not equal \(!=
  413. right arrow \(->    left arrow \(<-    up arrow \(ua    down arrow \(da
  414. multiply \(mu    divide \(di    union \(cu    intersection \(ca
  415. subset of \(sb    superset of \(sp    improper subset \(ib    improper superset \(ip
  416. infinity \(if    partial \(pd    gradient \(gr    not \(no
  417. integral \(is    proportional to \(pt    empty set \(es    member of \(mo
  418. box vertical rule \(br    Bell System Logo \(bs    right hand \(rh    left hand \(lh
  419. or \(or    circle \(ci    bullet \(bu    square \(sq
  420. left floor \(lf    right floor \(rf    left ceiling \(lc    right ceiling \(rc
  421. left top curly \(lt    left bottom \(lb    left center \(lk
  422. right top curly \(rt    right bottom \(rb    right center \(rk
  423. bold vertical \(bv
  424. X.sp 3
  425. X.ft B
  426. Greek Characters
  427. X.ft P
  428. X\(*a\(*b\(*g\(*d\(*e\(*z\(*y\(*h\(*i\(*k\(*l\(*m\(*n\(*c\(*o\(*p\(*r\(*s\(*t\(*u\(*f\(*x\(*q\(*w
  429. X\(*A\(*B\(*G\(*D\(*E\(*Z\(*Y\(*H\(*I\(*K\(*L\(*M\(*N\(*C\(*O\(*P\(*R\(*S\(*T\(*U\(*F\(*X\(*Q\(*W
  430. X.sp 3
  431. X\fBSuperscript, Subscript Tests\fP
  432. X.sp
  433. X\fBBOLD\fP
  434. X.sp
  435. X\fBBO\d2\u\h'-1'\u2\dLD\fP
  436. X.sp
  437. X\fIitalic\fP
  438. X.sp
  439. X\fIital\d2\u\h'-1'\u2\dic\fP
  440. X.sp
  441. A\u2\d  A\d2\u  A\u2\d\h'-1'\d2\u  end of test
  442. X.br
  443. A\u2\d\h'-1'\d2\u
  444. END_OF_FILE
  445. if test 2108 -ne `wc -c <'./specialgrk'`; then
  446.     echo shar: \"'./specialgrk'\" unpacked with wrong size!
  447. fi
  448. # end of './specialgrk'
  449. fi
  450. if test -f './specialtbl' -a "${1}" != "-c" ; then 
  451.   echo shar: Will not clobber existing file \"'./specialtbl'\"
  452. else
  453. echo shar: Extracting \"'./specialtbl'\" \(743 characters\)
  454. sed "s/^X//" >'./specialtbl' <<'END_OF_FILE'
  455. X.ne 50
  456. X.sp 10
  457. X.EQ
  458. delim $$
  459. X.EN
  460. X.fi
  461. X.na
  462. X.in +1i
  463. X.TS
  464. center allbox;
  465. cfi s
  466. cw(2i) cw(2i)
  467. l l.
  468. X\fBTest of Table\fP
  469. X.sp
  470. X\fIA    B\fP
  471. hi    there
  472. T{
  473. we find that there is danger in gifts bearing 
  474. greeks: there may be \(bu's and \(dg's 
  475. among the \(*a \(*b \(*g's.
  476. X.br
  477. Some greeks 
  478. X.br
  479. are bold:      \fB\(*P\fP
  480. X.br
  481. others perverted: $ pile { \(*b above bold \(*P above \(*a } $
  482. X.sp
  483. and others increase
  484. X.sp 2
  485. exponentially: \(*a\u\(*b\u\(*g\d\d.
  486. T}    T{
  487. now is the time for all good men to come to the aid of their country.
  488. X.br
  489. X\fInow\fP is the \fItime\fP for all good men to come to the aid of their country.
  490. X.br
  491. now is the \fBtime for all \ug\d\do\u\uo\d\dd\u men to \fPcome 
  492. to the aid of their. country.
  493. T}
  494. and another    line
  495. X.TE
  496. X.in -1i
  497. X.EQ
  498. delim off
  499. X.EN
  500. END_OF_FILE
  501. if test 743 -ne `wc -c <'./specialtbl'`; then
  502.     echo shar: \"'./specialtbl'\" unpacked with wrong size!
  503. fi
  504. # end of './specialtbl'
  505. fi
  506. if test -f './tabepson.c' -a "${1}" != "-c" ; then 
  507.   echo shar: Will not clobber existing file \"'./tabepson.c'\"
  508. else
  509. echo shar: Extracting \"'./tabepson.c'\" \(1130 characters\)
  510. sed "s/^X//" >'./tabepson.c' <<'END_OF_FILE'
  511. X/*
  512. X * EPSON        -       FOR 10 CHAR/INCH, PICA
  513. X * nroff driving tables
  514. X * width and code tables
  515. X */
  516. X
  517. X#define INCH    240
  518. X
  519. struct {
  520. X    int bset;
  521. X    int breset;
  522. X    int Hor;
  523. X    int Vert;
  524. X    int Newline;
  525. X    int Char;
  526. X    int Em;
  527. X    int Halfline;
  528. X    int Adj;
  529. X    char *twinit;
  530. X    char *twrest;
  531. X    char *twnl;
  532. X    char *hlr;
  533. X    char *hlf;
  534. X    char *flr;
  535. X    char *bdon;
  536. X    char *bdoff;
  537. X    char *iton;
  538. X    char *itoff;
  539. X    char *ploton;
  540. X    char *plotoff;
  541. X    char *up;
  542. X    char *down;
  543. X    char *right;
  544. X    char *left;
  545. X    char *codetab[256-32];
  546. X    int zzz;
  547. X    } t = {
  548. X/*bset    */        00,
  549. X/*breset  */        00,
  550. X/*Hor     */        INCH/10,
  551. X/*Vert    */        INCH/12,
  552. X/*Newline */        INCH/6,
  553. X/*Char    */        INCH/10,
  554. X/*Em      */        INCH/10,
  555. X/*Halfline*/        INCH/12,
  556. X/*Adj     */        INCH/10,
  557. X/*twinit  */        "\016{\017",    /* pica */
  558. X/*twrest  */        "",
  559. X/*twnl    */        "\r\n",
  560. X/*hlr     */        "\0338",
  561. X/*hlf     */        "\0339",
  562. X/*flr     */        "\0337",
  563. X/*bdon    */        "",        /* "\016v\017", */
  564. X/*bdoff   */        "",        /* "\016w\017", */
  565. X/*iton    */        "",        /* "\016|\017", */
  566. X/*itoff   */        "",        /* "\016}\017", */
  567. X/*ploton  */        "",
  568. X/*plotoff */        "",
  569. X/*up      */        "",
  570. X/*down    */        "",
  571. X/*right   */        "",
  572. X/*left    */        "",
  573. X/*codetab*/
  574. X#include "code.epson"
  575. END_OF_FILE
  576. if test 1130 -ne `wc -c <'./tabepson.c'`; then
  577.     echo shar: \"'./tabepson.c'\" unpacked with wrong size!
  578. fi
  579. # end of './tabepson.c'
  580. fi
  581. if test -f './tabepson12.c' -a "${1}" != "-c" ; then 
  582.   echo shar: Will not clobber existing file \"'./tabepson12.c'\"
  583. else
  584. echo shar: Extracting \"'./tabepson12.c'\" \(1139 characters\)
  585. sed "s/^X//" >'./tabepson12.c' <<'END_OF_FILE'
  586. X/*
  587. X * EPSON    -    FOR 12 CHAR/INCH, ELITE
  588. X * nroff driving tables
  589. X * width and code tables
  590. X */
  591. X
  592. X#define INCH    240
  593. X
  594. struct {
  595. X    int bset;
  596. X    int breset;
  597. X    int Hor;
  598. X    int Vert;
  599. X    int Newline;
  600. X    int Char;
  601. X    int Em;
  602. X    int Halfline;
  603. X    int Adj;
  604. X    char *twinit;
  605. X    char *twrest;
  606. X    char *twnl;
  607. X    char *hlr;
  608. X    char *hlf;
  609. X    char *flr;
  610. X    char *bdon;
  611. X    char *bdoff;
  612. X    char *iton;
  613. X    char *itoff;
  614. X    char *ploton;
  615. X    char *plotoff;
  616. X    char *up;
  617. X    char *down;
  618. X    char *right;
  619. X    char *left;
  620. X    char *codetab[256-32];
  621. X    int zzz;
  622. X    } t = {
  623. X/*bset    */        00,
  624. X/*breset  */        00,
  625. X/*Hor     */        INCH/10,
  626. X/*Vert    */        INCH/12,
  627. X/*Newline */        INCH/6,
  628. X/*Char    */        INCH/12,
  629. X/*Em      */        INCH/12,
  630. X/*Halfline*/        INCH/12,
  631. X/*Adj     */        INCH/12,
  632. X/*twinit  */        "\016z\017",    /* elite */
  633. X/*twrest  */        "\016{\017",    /* pica */
  634. X/*twnl    */        "\r\n",
  635. X/*hlr     */        "\0338",
  636. X/*hlf     */        "\0339",
  637. X/*flr     */        "\0337",
  638. X/*bdon    */        "",        /* "\016v\017", */
  639. X/*bdoff   */        "",        /* "\016w\017", */
  640. X/*iton    */        "",        /* "\016|\017", */
  641. X/*itoff   */        "",        /* "\016}\017", */
  642. X/*ploton  */        "",
  643. X/*plotoff */        "",
  644. X/*up      */        "",
  645. X/*down    */        "",
  646. X/*right   */        "",
  647. X/*left    */        "",
  648. X/*codetab*/
  649. X#include "code.epson"
  650. END_OF_FILE
  651. if test 1139 -ne `wc -c <'./tabepson12.c'`; then
  652.     echo shar: \"'./tabepson12.c'\" unpacked with wrong size!
  653. fi
  654. # end of './tabepson12.c'
  655. fi
  656. if test -f './table.c' -a "${1}" != "-c" ; then 
  657.   echo shar: Will not clobber existing file \"'./table.c'\"
  658. else
  659. echo shar: Extracting \"'./table.c'\" \(5011 characters\)
  660. sed "s/^X//" >'./table.c' <<'END_OF_FILE'
  661. X/*
  662. X    table (version 2.0) - a utility for creating nroff driver tables.
  663. X
  664. X    table:  a program to compile nroff terminal driver tables.
  665. X        Written by Bruce Townsend Oct, 1987.
  666. X
  667. X    Copyright (c) 1987 by Bruce Townsend and Bell-Northern Research.
  668. X    Permission is granted to use and distribute, except for profit,
  669. X    providing this copyright notice and the author's name is included.
  670. X    No warranty of any kind is expressed or implied, and no liability of
  671. X    any kind is assumed by either the author or Bell-Northern Research.
  672. X
  673. X    The contributions of Ian Darwin are gratefully acknowledged.
  674. X*/
  675. X
  676. X#define C_SIZE    20000    /* The maximum amount of character data allowed
  677. X               in the initialized structure t - increase if
  678. X               necessary */
  679. X
  680. X#include <stdio.h>
  681. X#include "table.h"    /* This file contains the definition of the
  682. X               the structures t and t_stor */
  683. X
  684. X/*    The compiled tab file contains three primary elements:
  685. X    -  An integer (c_size) which gives the size in bytes of the character
  686. X       data (the third element of the file).
  687. X    -  The structure t_stor, which contains integer data and integer
  688. X       indices into the character data that follows.
  689. X    -  c_size bytes of character data.
  690. X    Note that the file size in bytes is therefore:
  691. X    c_size + sizeof (int) + sizeof (t_stor)
  692. X*/
  693. X
  694. extern struct t t;    /* Defined in the tab file source */
  695. struct t_stor t_stor;    /* This structure is stored in the compiled tab file */
  696. X
  697. char    c_data[C_SIZE];    /* The character data to be stored in the tab file */
  698. int    c_size;        /* The amount of character data in bytes */
  699. X
  700. main (argc, argv)
  701. int    argc;
  702. char    *argv[];
  703. X{
  704. X    FILE    *table;
  705. X    int    i;
  706. X
  707. X    if (argc != 2) {    /* Need a file name argument */
  708. X        fprintf (stderr, "Usage: table tabfilename\n");
  709. X        exit (1);
  710. X    }
  711. X
  712. X    if ((table = fopen (argv[1], "w")) == NULL) {    /* Open the file */
  713. X        fprintf (stderr, "Could not open file %s for writing\n", argv[1]);
  714. X        exit (1);
  715. X    }
  716. X
  717. X    /* Copy the integer values from the initialized structure t
  718. X       to the storage structure t_stor */
  719. X    t_stor.bset = t.bset;
  720. X    t_stor.breset = t.breset;
  721. X    t_stor.Hor = t.Hor;
  722. X    t_stor.Vert = t.Vert;
  723. X    t_stor.Newline = t.Newline;
  724. X    t_stor.Char = t.Char;
  725. X#ifdef KANJI
  726. X    t_stor.Kchar = t.Kchar;
  727. X#endif KANJI
  728. X    t_stor.Em = t.Em;
  729. X    t_stor.Halfline = t.Halfline;
  730. X    t_stor.Adj = t.Adj;
  731. X
  732. X    /* Find each string in the character data table c_data, or add it to
  733. X       the table if it is not there, and provide an index to it which
  734. X       is stored in t_stor */
  735. X    t_stor.twinit = addstring (t.twinit);
  736. X    t_stor.twrest = addstring (t.twrest);
  737. X    t_stor.twnl = addstring (t.twnl);
  738. X    t_stor.hlr = addstring (t.hlr);
  739. X    t_stor.hlf = addstring (t.hlf);
  740. X    t_stor.flr = addstring (t.flr);
  741. X    t_stor.bdon = addstring (t.bdon);
  742. X    t_stor.bdoff = addstring (t.bdoff);
  743. X    t_stor.iton = addstring (t.iton);
  744. X    t_stor.itoff = addstring (t.itoff);
  745. X    t_stor.ploton = addstring (t.ploton);
  746. X    t_stor.plotoff = addstring (t.plotoff);
  747. X    t_stor.up = addstring (t.up);
  748. X    t_stor.down = addstring (t.down);
  749. X    t_stor.right = addstring (t.right);
  750. X    t_stor.left = addstring (t.left);
  751. X    for (i = 0; i < 256 - 32; i++)
  752. X        t_stor.codetab[i] = addchar (t.codetab[i]);
  753. X    t_stor.zzz = 0;        /* The null terminator */
  754. X
  755. X    /* Write to the tab file the amount of character data in bytes,
  756. X       the structure t_stor, and the character data */
  757. X    if (fwrite (&c_size, sizeof (c_size), 1, table) != 1 ||
  758. X        fwrite (&t_stor, sizeof (t_stor), 1, table) != 1 ||
  759. X        fwrite (c_data, sizeof (*c_data), c_size, table) != c_size) {
  760. X        fprintf (stderr, "Write to file failed\n");
  761. X        exit (1);
  762. X    }
  763. X
  764. X    /* Close the tab file */
  765. X    if (fclose (table)) {
  766. X        fprintf (stderr, "File %s not closed properly\n", argv[1]);
  767. X        exit (1);
  768. X    }
  769. X}
  770. X
  771. addstring (string)
  772. char    *string;
  773. X{
  774. X    if (string)    /* If pointer is non-zero add string to table */
  775. X        return (string_search (string, strlen (string) + 1));
  776. X
  777. X    else        /* If pointer is zero return 0 index */
  778. X        return (0);
  779. X}
  780. X
  781. addchar (string)
  782. char    *string;
  783. X{
  784. X    if (string)    /* If pointer is non-zero add string to table */
  785. X            /* Note that the string is at least 2 chars long
  786. X               and that the first 2 bytes may be null */
  787. X        return (string_search (string, strlen (string + 2) + 3));
  788. X
  789. X    else        /* If pointer is zero return 0 index */
  790. X        return (0);
  791. X}
  792. X
  793. X/*    string_search searches through the character array c_data to
  794. X    find the string.  If found, the routine returns an integer
  795. X    index that locates the string in c_data.  If it is not
  796. X    found, the string is added to c_data, and c_size, the amount
  797. X    of data in c_data, is updated.
  798. X*/
  799. string_search (string, length)
  800. char    *string;    /* The string to find in or add to the table */
  801. int    length;        /* The string length including the null terminator */
  802. X{
  803. X    int    s_index, c_index, match;
  804. X    char    *pointer;
  805. X
  806. X    for (s_index = 0; s_index <= c_size - length; s_index++) {
  807. X        pointer = string;
  808. X        match = 1;
  809. X        for (c_index = s_index; c_index < s_index + length;) {
  810. X        if (*pointer++ != c_data[c_index++]) {
  811. X            match = 0;
  812. X            break;
  813. X        }
  814. X        }
  815. X        if (match) return (s_index);
  816. X    }
  817. X
  818. X    s_index = c_size;
  819. X    while (length--)
  820. X        c_data[c_size++] = *string++;
  821. X
  822. X    return (s_index); 
  823. X}
  824. END_OF_FILE
  825. if test 5011 -ne `wc -c <'./table.c'`; then
  826.     echo shar: \"'./table.c'\" unpacked with wrong size!
  827. fi
  828. # end of './table.c'
  829. fi
  830. if test -f './table.h' -a "${1}" != "-c" ; then 
  831.   echo shar: Will not clobber existing file \"'./table.h'\"
  832. else
  833. echo shar: Extracting \"'./table.h'\" \(876 characters\)
  834. sed "s/^X//" >'./table.h' <<'END_OF_FILE'
  835. X#ifndef    INCH
  836. X#define    INCH    240
  837. X#endif
  838. X
  839. struct t {
  840. X    int bset;
  841. X    int breset;
  842. X    int Hor;
  843. X    int Vert;
  844. X    int Newline;
  845. X    int Char;
  846. X#ifdef KANJI
  847. X    int Kchar;
  848. X#endif KANJI
  849. X    int Em;
  850. X    int Halfline;
  851. X    int Adj;
  852. X    char *twinit;
  853. X    char *twrest;
  854. X    char *twnl;
  855. X    char *hlr;
  856. X    char *hlf;
  857. X    char *flr;
  858. X    char *bdon;
  859. X    char *bdoff;
  860. X    char *iton;
  861. X    char *itoff;
  862. X    char *ploton;
  863. X    char *plotoff;
  864. X    char *up;
  865. X    char *down;
  866. X    char *right;
  867. X    char *left;
  868. X    char *codetab[256-32];
  869. X    char *zzz;
  870. X    };
  871. X
  872. struct t_stor {        /* This structure will be stored in the tab file */
  873. X    int bset;
  874. X    int breset;
  875. X    int Hor;
  876. X    int Vert;
  877. X    int Newline;
  878. X    int Char;
  879. X#ifdef KANJI
  880. X    int Kchar;
  881. X#endif KANJI
  882. X    int Em;
  883. X    int Halfline;
  884. X    int Adj;
  885. X    int twinit;
  886. X    int twrest;
  887. X    int twnl;
  888. X    int hlr;
  889. X    int hlf;
  890. X    int flr;
  891. X    int bdon;
  892. X    int bdoff;
  893. X    int iton;
  894. X    int itoff;
  895. X    int ploton;
  896. X    int plotoff;
  897. X    int up;
  898. X    int down;
  899. X    int right;
  900. X    int left;
  901. X    int codetab[256-32];
  902. X    int zzz;
  903. X};
  904. END_OF_FILE
  905. if test 876 -ne `wc -c <'./table.h'`; then
  906.     echo shar: \"'./table.h'\" unpacked with wrong size!
  907. fi
  908. # end of './table.h'
  909. fi
  910. if test -f './Matrix/Delta' -a "${1}" != "-c" ; then 
  911.   echo shar: Will not clobber existing file \"'./Matrix/Delta'\"
  912. else
  913. echo shar: Extracting \"'./Matrix/Delta'\" \(1509 characters\)
  914. sed "s/^X//" >'./Matrix/Delta' <<'END_OF_FILE'
  915. int    array    [24][28]    =    {
  916. X                /* ^ */
  917. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  918. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  919. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  920. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  921. X/*sq*/    { , , , , , , , , , , , , ,1, , , , , , , , , , , , , , },
  922. X    { , , , , , , , , , , , , ,1,1, , , , , , , , , , , , , },
  923. X/*top*/    { , , , , , , , , , , , ,1, ,1,1, , , , , , , , , , , , },
  924. X    { , , , , , , , , , , ,1, , , ,1,1, , , , , , , , , , , },
  925. X    { , , , , , , , , , , ,1, , , , ,1,1, , , , , , , , , , },
  926. X    { , , , , , , , , , ,1, , , , , , ,1,1, , , , , , , , , },
  927. X    { , , , , , , , , ,1, , , , , , , ,1,1, , , , , , , , , },
  928. X    { , , , , , , , ,1, , , , , , , , , ,1,1, , , , , , , , },
  929. X    { , , , , , , ,1, , , , , , , , , , , ,1,1, , , , , , , },
  930. X    { , , , , , , ,1, , , , , , , , , , , , ,1,1, , , , , , },
  931. X    { , , , , , ,1, , , , , , , , , , , , , ,1,1, , , , , , },
  932. X    { , , , , ,1, , , , , , , , , , , , , , , ,1,1, , , , , },
  933. X    { , , , , ,1, , , , , , , , , , , , , , , , ,1,1, , , , },
  934. X    { , , , ,1, , , , , , , , , , , , , , , , , , ,1,1, , , },
  935. X/*bot*/    { , , ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, , , },
  936. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  937. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  938. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  939. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  940. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  941. X    };            /* ^ */
  942. END_OF_FILE
  943. if test 1509 -ne `wc -c <'./Matrix/Delta'`; then
  944.     echo shar: \"'./Matrix/Delta'\" unpacked with wrong size!
  945. fi
  946. # end of './Matrix/Delta'
  947. fi
  948. if test -f './Matrix/Gamma' -a "${1}" != "-c" ; then 
  949.   echo shar: Will not clobber existing file \"'./Matrix/Gamma'\"
  950. else
  951. echo shar: Extracting \"'./Matrix/Gamma'\" \(1503 characters\)
  952. sed "s/^X//" >'./Matrix/Gamma' <<'END_OF_FILE'
  953. int    array    [24][28]    =    {
  954. X                /* ^ */
  955. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  956. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  957. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  958. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  959. X    { , ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, , , },
  960. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , ,1,1, , , },
  961. X/*top*/    { , , , ,1,1,1, , , , , , , , , , , , , , , , , ,1, , , },
  962. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , , , , , , },
  963. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , , , , , , },
  964. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , , , , , , },
  965. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , , , , , , },
  966. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , , , , , , },
  967. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , , , , , , },
  968. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , , , , , , },
  969. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , , , , , , },
  970. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , , , , , , },
  971. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , , , , , , },
  972. X    { , , , ,1,1,1, , , , , , , , , , , , , , , , , , , , , },
  973. X/*bot*/    { , ,1,1,1,1,1,1,1, , , , , , , , , , , , , , , , , , , },
  974. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  975. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  976. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  977. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  978. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  979. X    };            /* ^ */
  980. END_OF_FILE
  981. if test 1503 -ne `wc -c <'./Matrix/Gamma'`; then
  982.     echo shar: \"'./Matrix/Gamma'\" unpacked with wrong size!
  983. fi
  984. # end of './Matrix/Gamma'
  985. fi
  986. if test -f './Matrix/Lambda' -a "${1}" != "-c" ; then 
  987.   echo shar: Will not clobber existing file \"'./Matrix/Lambda'\"
  988. else
  989. echo shar: Extracting \"'./Matrix/Lambda'\" \(1509 characters\)
  990. sed "s/^X//" >'./Matrix/Lambda' <<'END_OF_FILE'
  991. int    array    [24][28]    =    {
  992. X                /* ^ */
  993. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  994. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  995. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  996. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  997. X/*sq*/    { , , , , , , , , , , , , ,1,1, , , , , , , , , , , , , },
  998. X    { , , , , , , , , , , , , ,1,1,1, , , , , , , , , , , , },
  999. X/*top*/    { , , , , , , , , , , , ,1, ,1,1,1, , , , , , , , , , , },
  1000. X    { , , , , , , , , , , ,1, , , ,1,1,1, , , , , , , , , , },
  1001. X    { , , , , , , , , , , ,1, , , , ,1,1,1, , , , , , , , , },
  1002. X    { , , , , , , , , , ,1, , , , , , ,1,1,1, , , , , , , , },
  1003. X    { , , , , , , , , ,1, , , , , , , ,1,1,1, , , , , , , , },
  1004. X    { , , , , , , , ,1, , , , , , , , , ,1,1,1, , , , , , , },
  1005. X    { , , , , , , ,1, , , , , , , , , , , ,1,1,1, , , , , , },
  1006. X    { , , , , , , ,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1007. X    { , , , , , ,1, , , , , , , , , , , , , ,1,1,1, , , , , },
  1008. X    { , , , , ,1, , , , , , , , , , , , , , , ,1,1,1, , , , },
  1009. X    { , , , , ,1, , , , , , , , , , , , , , , , ,1,1,1, , , },
  1010. X    { , , , ,1, , , , , , , , , , , , , , , , , , ,1,1,1, , },
  1011. X/*bot*/    { , ,1,1,1,1, , , , , , , , , , , , , , , , ,1,1,1,1,1, },
  1012. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1013. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1014. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1015. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1016. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1017. X    };            /* ^ */
  1018. END_OF_FILE
  1019. if test 1509 -ne `wc -c <'./Matrix/Lambda'`; then
  1020.     echo shar: \"'./Matrix/Lambda'\" unpacked with wrong size!
  1021. fi
  1022. # end of './Matrix/Lambda'
  1023. fi
  1024. if test -f './Matrix/Makefile' -a "${1}" != "-c" ; then 
  1025.   echo shar: Will not clobber existing file \"'./Matrix/Makefile'\"
  1026. else
  1027. echo shar: Extracting \"'./Matrix/Makefile'\" \(503 characters\)
  1028. sed "s/^X//" >'./Matrix/Makefile' <<'END_OF_FILE'
  1029. X# mkmake  $Revision: 1.8 $ $Date: 85/02/08 13:26:48 $
  1030. X.SUFFIXES:    .c .L .o .y .l
  1031. X.c.L:    ;    lint $? > $@
  1032. DST=.
  1033. X
  1034. OBJECTS=mat.o matrix.o 
  1035. X
  1036. CFLAGS=
  1037. LDFLAGS=
  1038. X
  1039. CSOURCES=mat.c matrix.c 
  1040. X
  1041. LFILES=mat.L matrix.L 
  1042. X
  1043. out:    ${OBJECTS}
  1044. X    @cc ${CFLAGS} ${OBJECTS} -o out ${LDFLAGS}
  1045. X    @out > to_be_put_in_epf.c
  1046. X
  1047. mat.o:    mat.c 
  1048. X    cc ${CFLAGS} -c mat.c
  1049. X
  1050. matrix.o:    matrix.c 
  1051. X    @cc ${CFLAGS} -c matrix.c
  1052. X
  1053. lint:    ${LFILES}
  1054. X
  1055. install:
  1056. X    strip out
  1057. X    mv out ${DST}/out
  1058. X
  1059. ctags:
  1060. X    ctags -v ${CFILES} | sort -f > ctags
  1061. X
  1062. clean:
  1063. X    rm -f ${OBJECTS}
  1064. END_OF_FILE
  1065. if test 503 -ne `wc -c <'./Matrix/Makefile'`; then
  1066.     echo shar: \"'./Matrix/Makefile'\" unpacked with wrong size!
  1067. fi
  1068. # end of './Matrix/Makefile'
  1069. fi
  1070. if test -f './Matrix/NOTE' -a "${1}" != "-c" ; then 
  1071.   echo shar: Will not clobber existing file \"'./Matrix/NOTE'\"
  1072. else
  1073. echo shar: Extracting \"'./Matrix/NOTE'\" \(993 characters\)
  1074. sed "s/^X//" >'./Matrix/NOTE' <<'END_OF_FILE'
  1075. This directory contains source code from the posting by:
  1076. X
  1077. John Nellen, Delft Univ. of Technology 
  1078. X..!{decvax,philabs}!mcvax!dutesta!john 
  1079. Newsgroups: net.sources
  1080. Subject: Epson filter to type nroff Non-ASCII char's (no 1 of 4)
  1081. Date: 30 Oct 85 09:54:20 GMT
  1082. X
  1083. This code is not in the comp.sources archives.  It is on simtel20.arpa.
  1084. X
  1085. The data files are patterns for LQ-1500 graphics for the nroff special
  1086. characters that cannot be decently obtained by overstriking, etc., of the
  1087. printable ascii set.
  1088. X
  1089. Mat.c generates the printer control strings used by the "epf" filter,
  1090. for conversion of the representations of the special characters in the
  1091. nroff driver table (tabepson) to epson graphics (more precisely,
  1092. user-defined characters).  The generaged code forms the substance of
  1093. matrix.h.
  1094. X
  1095. A few special characters have been added:
  1096. X    bold_vert
  1097. X    left_bot
  1098. X    left_top
  1099. X    propor
  1100. X    right_bot
  1101. X    right_top
  1102. X
  1103. The shell script "mk.addin.sh" makes it a bit easier to convert the
  1104. pictures to printer control strings.
  1105. X
  1106. END_OF_FILE
  1107. if test 993 -ne `wc -c <'./Matrix/NOTE'`; then
  1108.     echo shar: \"'./Matrix/NOTE'\" unpacked with wrong size!
  1109. fi
  1110. # end of './Matrix/NOTE'
  1111. fi
  1112. if test -f './Matrix/Omega' -a "${1}" != "-c" ; then 
  1113.   echo shar: Will not clobber existing file \"'./Matrix/Omega'\"
  1114. else
  1115. echo shar: Extracting \"'./Matrix/Omega'\" \(1509 characters\)
  1116. sed "s/^X//" >'./Matrix/Omega' <<'END_OF_FILE'
  1117. int    array    [24][28]    =    {
  1118. X                /* ^ */
  1119. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1120. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1121. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1122. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1123. X/*sq*/    { , , , , , , , , , ,1,1,1,1,1,1,1, , , , , , , , , , , },
  1124. X    { , , , , , , , ,1,1,1,1,1, ,1,1,1,1,1, , , , , , , , , },
  1125. X/*top*/    { , , , , , ,1,1,1, , , , , , , , , ,1,1,1, , , , , , , },
  1126. X    { , , , , ,1,1,1,1, , , , , , , , , ,1,1,1,1, , , , , , },
  1127. X    { , , , ,1,1,1, , , , , , , , , , , , , ,1,1,1, , , , , },
  1128. X    { , , , ,1,1,1, , , , , , , , , , , , , ,1,1,1, , , , , },
  1129. X    { , , ,1,1,1, , , , , , , , , , , , , , , ,1,1,1, , , , },
  1130. X    { , , ,1,1,1, , , , , , , , , , , , , , , ,1,1,1, , , , },
  1131. X    { , , ,1,1,1, , , , , , , , , , , , , , , ,1,1,1, , , , },
  1132. X    { , , , ,1,1,1, , , , , , , , , , , , , ,1,1,1, , , , , },
  1133. X    { , , , , ,1,1,1, , , , , , , , , , , ,1,1,1, , , , , , },
  1134. X    { , , , , , , ,1,1,1, , , , , , , ,1,1,1, , , , , , , , },
  1135. X    { , , , , , , , ,1,1,1, , , , , ,1,1,1, , , , , , , , , },
  1136. X    { , ,1,1, , , , , , ,1, , , , , ,1, , , , , , ,1,1, , , },
  1137. X/*bot*/    { , , ,1,1,1,1,1,1,1,1, , , , , ,1,1,1,1,1,1,1,1, , , , },
  1138. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1139. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1140. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1141. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1142. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1143. X    {;            /* ^ */
  1144. END_OF_FILE
  1145. if test 1509 -ne `wc -c <'./Matrix/Omega'`; then
  1146.     echo shar: \"'./Matrix/Omega'\" unpacked with wrong size!
  1147. fi
  1148. # end of './Matrix/Omega'
  1149. fi
  1150. if test -f './Matrix/Phi' -a "${1}" != "-c" ; then 
  1151.   echo shar: Will not clobber existing file \"'./Matrix/Phi'\"
  1152. else
  1153. echo shar: Extracting \"'./Matrix/Phi'\" \(1503 characters\)
  1154. sed "s/^X//" >'./Matrix/Phi' <<'END_OF_FILE'
  1155. int    array    [24][28]    =    {
  1156. X                /* ^ */
  1157. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1158. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1159. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1160. X    { , , , , , , , , , ,1,1,1,1,1,1,1,1, , , , , , , , , , },
  1161. X    { , , , , , , , , , , , ,1,1,1, , , , , , , , , , , , , },
  1162. X    { , , , , , , , , , , , ,1,1,1, , , , , , , , , , , , , },
  1163. X/*top*/    { , , , , , , , , , ,1,1,1,1,1,1,1, , , , , , , , , , , },
  1164. X    { , , , , , , ,1,1,1, , ,1,1,1, , ,1,1,1, , , , , , , , },
  1165. X    { , , , , ,1,1,1, , , , ,1,1,1, , , , ,1,1,1, , , , , , },
  1166. X    { , , , ,1,1,1, , , , , ,1,1,1, , , , , ,1,1,1, , , , , },
  1167. X    { , , ,1,1,1, , , , , , ,1,1,1, , , , , , ,1,1,1, , , , },
  1168. X    { , ,1,1,1,1, , , , , , ,1,1,1, , , , , , ,1,1,1,1, , , },
  1169. X    { , ,1,1,1, , , , , , , ,1,1,1, , , , , , , ,1,1,1, , , },
  1170. X    { , ,1,1,1,1, , , , , , ,1,1,1, , , , , , ,1,1,1,1, , , },
  1171. X    { , , ,1,1,1, , , , , , ,1,1,1, , , , , , ,1,1,1, , , , },
  1172. X    { , , , ,1,1,1, , , , , ,1,1,1, , , , , ,1,1,1, , , , , },
  1173. X    { , , , , ,1,1,1, , , , ,1,1,1, , , , ,1,1,1, , , , , , },
  1174. X    { , , , , , , ,1,1,1, , ,1,1,1, , ,1,1,1, , , , , , , , },
  1175. X/*bot*/    { , , , , , , , , , ,1,1,1,1,1,1,1, , , , , , , , , , , },
  1176. X    { , , , , , , , , , , , ,1,1,1, , , , , , , , , , , , , },
  1177. X    { , , , , , , , , , , , ,1,1,1, , , , , , , , , , , , , },
  1178. X    { , , , , , , , , , ,1,1,1,1,1,1,1, , , , , , , , , , , },
  1179. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1180. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1181. X    };            /* ^ */
  1182. END_OF_FILE
  1183. if test 1503 -ne `wc -c <'./Matrix/Phi'`; then
  1184.     echo shar: \"'./Matrix/Phi'\" unpacked with wrong size!
  1185. fi
  1186. # end of './Matrix/Phi'
  1187. fi
  1188. if test -f './Matrix/Pi' -a "${1}" != "-c" ; then 
  1189.   echo shar: Will not clobber existing file \"'./Matrix/Pi'\"
  1190. else
  1191. echo shar: Extracting \"'./Matrix/Pi'\" \(1509 characters\)
  1192. sed "s/^X//" >'./Matrix/Pi' <<'END_OF_FILE'
  1193. int    array    [24][28]    =    {
  1194. X                /* ^ */
  1195. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1196. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1197. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1198. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1199. X/*sq*/    { , , ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, , , },
  1200. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1201. X/*top*/    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1202. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1203. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1204. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1205. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1206. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1207. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1208. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1209. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1210. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1211. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1212. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1,1, , , , , },
  1213. X/*bot*/    { , , ,1,1,1,1,1,1,1, , , , , , , , ,1,1,1,1,1,1,1, , , },
  1214. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1215. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1216. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1217. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1218. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1219. X    };            /* ^ */
  1220. END_OF_FILE
  1221. if test 1509 -ne `wc -c <'./Matrix/Pi'`; then
  1222.     echo shar: \"'./Matrix/Pi'\" unpacked with wrong size!
  1223. fi
  1224. # end of './Matrix/Pi'
  1225. fi
  1226. if test -f './Matrix/Psi' -a "${1}" != "-c" ; then 
  1227.   echo shar: Will not clobber existing file \"'./Matrix/Psi'\"
  1228. else
  1229. echo shar: Extracting \"'./Matrix/Psi'\" \(1509 characters\)
  1230. sed "s/^X//" >'./Matrix/Psi' <<'END_OF_FILE'
  1231. int    array    [24][28]    =    {
  1232. X                /* ^ */
  1233. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1234. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1235. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1236. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1237. X/*sq*/    { , , , , , , , , , ,1,1,1,1,1,1,1, , , , , , , , , , , },
  1238. X    { , , , , , , , , , , , ,1,1,1, , , , , , , , , , , , , },
  1239. X/*top*/    { , , , , ,1,1, , , , , ,1,1,1, , , , , ,1,1, , , , , , },
  1240. X    { , , , ,1,1,1,1, , , , ,1,1,1, , , , ,1,1,1,1, , , , , },
  1241. X    { , , ,1,1, , ,1,1, , , ,1,1,1, , , ,1,1, , ,1,1, , , , },
  1242. X    { , , ,1, , , ,1,1, , , ,1,1,1, , , ,1,1, , , ,1, , , , },
  1243. X    { , , , , , , ,1,1, , , ,1,1,1, , , ,1,1, , , , , , , , },
  1244. X    { , , , , , , ,1,1, , , ,1,1,1, , , ,1,1, , , , , , , , },
  1245. X    { , , , , , , ,1,1, , , ,1,1,1, , , ,1,1, , , , , , , , },
  1246. X    { , , , , , , ,1,1, , , ,1,1,1, , , ,1,1, , , , , , , , },
  1247. X    { , , , , , , ,1,1, , , ,1,1,1, , , ,1,1, , , , , , , , },
  1248. X    { , , , , , , ,1,1, , , ,1,1,1, , , ,1,1, , , , , , , , },
  1249. X    { , , , , , , , ,1,1, , ,1,1,1, , ,1,1, , , , , , , , , },
  1250. X    { , , , , , , , , ,1,1,1,1,1,1,1,1,1, , , , , , , , , , },
  1251. X/*bot*/    { , , , , , , , , , , ,1,1,1,1,1, , , , , , , , , , , , },
  1252. X    { , , , , , , , , , , , ,1,1,1, , , , , , , , , , , , , },
  1253. X    { , , , , , , , , , ,1,1,1,1,1,1,1, , , , , , , , , , , },
  1254. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1255. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1256. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1257. X    };            /* ^ */
  1258. END_OF_FILE
  1259. if test 1509 -ne `wc -c <'./Matrix/Psi'`; then
  1260.     echo shar: \"'./Matrix/Psi'\" unpacked with wrong size!
  1261. fi
  1262. # end of './Matrix/Psi'
  1263. fi
  1264. if test -f './Matrix/README' -a "${1}" != "-c" ; then 
  1265.   echo shar: Will not clobber existing file \"'./Matrix/README'\"
  1266. else
  1267. echo shar: Extracting \"'./Matrix/README'\" \(794 characters\)
  1268. sed "s/^X//" >'./Matrix/README' <<'END_OF_FILE'
  1269. This directory contains all the characters implemented in epf.c
  1270. X
  1271. To make a new character: edit matrix.c and copy it to a file which
  1272. you give the name of the character.
  1273. Mat.c is a file which scans matrix.c and produces a file called: out
  1274. X
  1275. X'out' will be excuted by the makefile and produces a file 'to_be_put_in_epf.c'
  1276. which is to be put in epf.c,(ha-ha) and there you have your user-defined char.
  1277. All the characters are known by nroff when you change the driving tables
  1278. called tabepson.c and code.epson (comes with this package)
  1279. X(To be installed in /usr/src/usr.bin/troff/term)
  1280. Characters are defined in those tables via <cntr>AA, <cntr>AB, <cntr>AC,....
  1281. X
  1282. then: nroff -Tepson - ... file     will work for you.
  1283. X
  1284. X--
  1285. X            John Nellen, Delft Univ. of Technology
  1286. X            ..!{decvax,philabs}!mcvax!dutesta!john
  1287. END_OF_FILE
  1288. if test 794 -ne `wc -c <'./Matrix/README'`; then
  1289.     echo shar: \"'./Matrix/README'\" unpacked with wrong size!
  1290. fi
  1291. # end of './Matrix/README'
  1292. fi
  1293. if test -f './Matrix/Sigma' -a "${1}" != "-c" ; then 
  1294.   echo shar: Will not clobber existing file \"'./Matrix/Sigma'\"
  1295. else
  1296. echo shar: Extracting \"'./Matrix/Sigma'\" \(1509 characters\)
  1297. sed "s/^X//" >'./Matrix/Sigma' <<'END_OF_FILE'
  1298. int    array    [24][28]    =    {
  1299. X                /* ^ */
  1300. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1301. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1302. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1303. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1304. X/*sq*/    { , , ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, , , , , },
  1305. X    { , , , ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, , , , },
  1306. X/*top*/    { , , , , ,1, , , , , , , , , , , , , , , , , , ,1, , , },
  1307. X    { , , , , , ,1, , , , , , , , , , , , , , , , , , , , , },
  1308. X    { , , , , , , ,1, , , , , , , , , , , , , , , , , , , , },
  1309. X    { , , , , , , , ,1, , , , , , , , , , , , , , , , , , , },
  1310. X    { , , , , , , , , ,1, , , , , , , , , , , , , , , , , , },
  1311. X    { , , , , , , , , , ,1, , , , , , , , , , , , , , , , , },
  1312. X    { , , , , , , , , ,1, , , , , , , , , , , , , , , , , , },
  1313. X    { , , , , , , , ,1, , , , , , , , , , , , , , , , , , , },
  1314. X    { , , , , , , ,1, , , , , , , , , , , , , , , , , , , , },
  1315. X    { , , , , , ,1, , , , , , , , , , , , , , , , , ,1, , , },
  1316. X    { , , , , ,1, , , , , , , , , , , , , , , , , ,1,1, , , },
  1317. X    { , , , ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, , , },
  1318. X/*bot*/    { , , ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, , , },
  1319. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1320. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1321. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1322. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1323. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1324. X    };            /* ^ */
  1325. END_OF_FILE
  1326. if test 1509 -ne `wc -c <'./Matrix/Sigma'`; then
  1327.     echo shar: \"'./Matrix/Sigma'\" unpacked with wrong size!
  1328. fi
  1329. # end of './Matrix/Sigma'
  1330. fi
  1331. if test -f './Matrix/Theta' -a "${1}" != "-c" ; then 
  1332.   echo shar: Will not clobber existing file \"'./Matrix/Theta'\"
  1333. else
  1334. echo shar: Extracting \"'./Matrix/Theta'\" \(1509 characters\)
  1335. sed "s/^X//" >'./Matrix/Theta' <<'END_OF_FILE'
  1336. int    array    [24][28]    =    {
  1337. X                /* ^ */
  1338. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1339. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1340. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1341. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1342. X/*sq*/    { , , , , , , , , , ,1,1,1,1,1,1,1, , , , , , , , , , , },
  1343. X    { , , , , , , , ,1,1, , , , , , , ,1,1, , , , , , , , , },
  1344. X/*top*/    { , , , , , , ,1,1, , , , , , , , , ,1,1, , , , , , , , },
  1345. X    { , , , , , ,1,1, , , , , , , , , , , , ,1,1, , , , , , },
  1346. X    { , , , , ,1,1, , , , , , , , , , , , , , ,1,1, , , , , },
  1347. X    { , , , ,1,1, , , ,1, , , , , , , ,1, , , , ,1,1, , , , },
  1348. X    { , , ,1,1, , , , ,1,1, , , , , ,1,1, , , , , ,1,1, , , },
  1349. X    { , , ,1,1, , , , ,1,1,1,1,1,1,1,1,1, , , , , ,1,1, , , },
  1350. X    { , , ,1,1, , , , ,1,1, , , , , ,1,1, , , , , ,1,1, , , },
  1351. X    { , , ,1,1,1, , , ,1, , , , , , , ,1, , , , ,1,1,1, , , },
  1352. X    { , , , ,1,1,1, , , , , , , , , , , , , , ,1,1,1, , , , },
  1353. X    { , , , , ,1,1,1, , , , , , , , , , , , ,1,1, , , , , , },
  1354. X    { , , , , , ,1,1,1, , , , , , , , , ,1,1,1, , , , , , , },
  1355. X    { , , , , , , , ,1,1, , , , , , , ,1,1, , , , , , , , , },
  1356. X/*bot*/    { , , , , , , , , , ,1,1,1,1,1,1,1, , , , , , , , , , , },
  1357. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1358. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1359. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1360. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1361. X    { , , , , , , , , , , , , , , , , , , , , , , , , , , , },
  1362. X    };            /* ^ */
  1363. END_OF_FILE
  1364. if test 1509 -ne `wc -c <'./Matrix/Theta'`; then
  1365.     echo shar: \"'./Matrix/Theta'\" unpacked with wrong size!
  1366. fi
  1367. # end of './Matrix/Theta'
  1368. fi
  1369. if test -f './Matrix/mat.c' -a "${1}" != "-c" ; then 
  1370.   echo shar: Will not clobber existing file \"'./Matrix/mat.c'\"
  1371. else
  1372. echo shar: Extracting \"'./Matrix/mat.c'\" \(824 characters\)
  1373. sed "s/^X//" >'./Matrix/mat.c' <<'END_OF_FILE'
  1374. X
  1375. main () {
  1376. X   int   digit,
  1377. X         x,
  1378. X         y,
  1379. X         n;
  1380. X   extern int  array[24][28]; 
  1381. X   printf ("    {\n    ");
  1382. X   printf (" 27,'p',  1, 27,'&',  0,'A','A',  4, 28,  5,\n    ");
  1383. X   for (x = 0; x < 28; x++) {
  1384. X      digit = 0;
  1385. X      n = 1;
  1386. X      for (y = 7; y >= 0; y-- ) {
  1387. X     digit += (array[y][x] * n);
  1388. X     n = n * 2;
  1389. X      }
  1390. X      printf ("%3d,", digit);
  1391. X      digit = 0;
  1392. X      n = 1;
  1393. X      for (y = 15; y > 7; y--) {
  1394. X     digit += (array[y][x] * n);
  1395. X     n = n * 2;
  1396. X      }
  1397. X      printf ("%3d,", digit);
  1398. X      digit = 0;
  1399. X      n = 1;
  1400. X      for (y = 23; y > 15; y--) {
  1401. X     digit += (array[y][x] * n);
  1402. X     n = n * 2;
  1403. X      }
  1404. X      printf ("%3d,", digit);
  1405. X      if (x == 4 | x == 9 | x == 14 | x == 19 | x == 24)
  1406. X     printf ("\n    ");
  1407. X   }
  1408. X   printf("\n     27,'%%',  1,'A', 27,'%%',  0, 27,'p',  0");
  1409. X   printf ("\n    },\n");
  1410. X}
  1411. END_OF_FILE
  1412. if test 824 -ne `wc -c <'./Matrix/mat.c'`; then
  1413.     echo shar: \"'./Matrix/mat.c'\" unpacked with wrong size!
  1414. fi
  1415. # end of './Matrix/mat.c'
  1416. fi
  1417. echo shar: End of archive 3 \(of 6\).
  1418. cp /dev/null ark3isdone
  1419. MISSING=""
  1420. for I in 1 2 3 4 5 6 ; do
  1421.     if test ! -f ark${I}isdone ; then
  1422.     MISSING="${MISSING} ${I}"
  1423.     fi
  1424. done
  1425. if test "${MISSING}" = "" ; then
  1426.     echo You have unpacked all 6 archives.
  1427.     rm -f ark[1-9]isdone
  1428. else
  1429.     echo You still need to unpack the following archives:
  1430.     echo "        " ${MISSING}
  1431. fi
  1432. ##  End of shell archive.
  1433. exit 0
  1434.  
  1435.